/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package BL;

import BD.DaoConfig;
import BD.interfaces.PaginaDao;
import BD.interfaces.TerminoVacioDao;
import BE.Pagina;
import BE.TerminoVacio;
import com.ibatis.dao.client.DaoManager;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author externo.drisco
 */
public class BusquedaBL {

   private DaoManager daoManager;

   public BusquedaBL(){

       daoManager = DaoConfig.getDaoManager();

   }

    public List<String> obtenerPalabrasClave(String frase){

      String [] arrTerminos = frase.split(" ");
      List<String> arrTermSinVacios = eliminarTerminosVacios(arrTerminos);
      return arrTermSinVacios;

    }

    private List<String> eliminarTerminosVacios(String [] arrTerminos){

        List<String> arrPalabras = new ArrayList<String>();

        TerminoVacioDao objTermVacioDao = (TerminoVacioDao)daoManager.getDao(TerminoVacioDao.class);
        List<TerminoVacio> arrTerminoVacio = objTermVacioDao.seleccionarTerminoVacio();

        for(int i=0;i<arrTerminos.length;i++)
        {
            if(!arrTerminos[i].trim().equals(""))
            {
                if(NoEsVacio(arrTerminos[i],arrTerminoVacio))
                arrPalabras.add(arrTerminos[i]);
            }
        }
        return arrPalabras;
    }

    private boolean NoEsVacio(String termino,List<TerminoVacio> arrTerminoVacio){

        for(int i=0;i<arrTerminoVacio.size();i++)
        {
            if(termino.toLowerCase().equals(arrTerminoVacio.get(i).getTermino().toLowerCase()))
            {
                return false;
            }
        }
        return true;
    }

    public List<Pagina> obtenerBusqueda(List<String> arrTermino){

        /*String codigo = "";

        for(String s:arrTermino){
            if(!codigo.equals(""))
            {
                codigo = codigo+",'"+ s+"'";
            }
            else
            {
                codigo=s+"'";
            }
        }*/

        PaginaDao objPaginaDao = (PaginaDao)daoManager.getDao(PaginaDao.class);

        List<Pagina> arrPagina = objPaginaDao.obtenerBusqueda(arrTermino);

        return arrPagina;
   }
}
